package com.syh.jn.scm.domain.supplier.repository.finance;

import com.syh.core.ddd.infrastructure.repository.AggregateRepository;
import com.syh.jn.scm.domain.supplier.entity.finance.BusinessAccountRecord;

/**
 * 应收应付历史记录
 */
public interface BusinessAccountRecordRepository extends BusinessAccountRecordReadRepository, AggregateRepository<BusinessAccountRecord, Long> {

  /**
   * 纠正数据使用 纠正应收付记录中的累计汇总
   *
   * @param customerType 客户类型
   */
  void recalculationAccountRecordSummary(Short customerType);

  /**
   * 纠正数据使用 纠正应收付记录中的优惠金额
   */
  void recalculationAccountRecordDiscount();

  /**
   * 纠正数据使用 纠正订单未生成应收付记录
   */
  void correctAccountRecord();

  /**
   * 根据服务商id删除应收付历史记录
   * @param businessEntityId
   */
  void deleteByBusinessEntityId(Long businessEntityId);
}
